perm filename VRNLEL.SAI[PIX,HPM] blob
sn#458169 filedate 1979-07-13 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "VRNLEL"
C00006 ENDMK
C⊗;
BEGIN "VRNLEL"
REQUIRE "VIXHDR.SAI[VIS,HPM]" SOURCE_FILE;
INTEGER FOO,OCH; BOOLEAN LINES;
INTEGER I,J,K,NFX,NFY,NF,VRN,COUNT,BRCHAR,EOF;
PRINT("Number of pages across:"); NFX←CVD(INCHWL);
PRINT("Number of pages vertically:"); NFY←CVD(INCHWL);
PRINT("Outlines?"); LINES←(INCHWL LAND '137)="Y";
NF←NFX*NFY;
BEGIN "BIT FILE"
INTEGER ROW;
STRING ARRAY SF[1:NF];
INTEGER ARRAY PIC[1:NF,0:10], PCH[1:NF];
INTEGER ARRAY SCNLIN[0:2,-1:117];
FOR I←1 STEP 1 UNTIL NF DO
BEGIN DO PRINT("BIT FILE ",I,":") UNTIL PFLDIM(SF[I]←INCHWL)>0;
PCH[I]←OPNPFL(SF[I],PIC[I,0]); END;
VRN←GETCHAN; EOF←TRUE;
DO OPEN(VRN,"VRN",'117,2,2,COUNT,BRCHAR,EOF) UNTIL ¬EOF ∨ (0 LAND CALL(2,"SLEEP"));
FOR ROW←1 STEP 1 UNTIL NFY DO
BEGIN "ROWS"
INTEGER MAXL,NFL,NFH;
NFL←(ROW-1)*NFX+1; NFH←NFL+NFX-1;
MAXL←PIC[NFL,PCLN];
FOR I←NFL+1 STEP 1 UNTIL NFH DO MAXL←MAXL MAX PIC[I,PCLN];
IF ROW=NFY THEN MAXL←MAXL+400;
FOR I←0 STEP 1 UNTIL MAXL-1 DO
BEGIN
INTEGER PT,RH,MI,MIP,LO,HI,R3;
R3←ROW MOD 3;
FOR J←0 STEP 1 UNTIL 117 DO SCNLIN[R3,J]←-1;
FOR K←NFL STEP 1 UNTIL NFH DO
BEGIN
SAFE INTEGER ARRAY SCNLI[0:PIC[K,LNWD]+3];
IF I<PIC[K,PCLN] THEN
ARRYIN(PCH[K],SCNLI[0],PIC[K,LNWD]);
IF LINES THEN
BEGIN
SCNLI[1]←SCNLI[1] LOR '400000000000;
SCNLI[PIC[K,LNWD]-1]←SCNLI[PIC[K,LNWD]-1] LOR
(1 LSH (PIC[K,LNWD]*36-PIC[K,LNBY]));
END;
MI←(PIC[K,LNWD]-1)%2+1; MIP←(4224*(K-NFL+.5)/NFX)/36+.5;
LO←(1-MI) MAX -MIP; HI←(PIC[K,LNWD]-1-MI) MIN (117-MIP);
FOR J←LO STEP 1 UNTIL HI DO
SCNLIN[R3,J+MIP]←SCNLIN[R3,J+MIP] LOR SCNLI[J+MI];
END;
IF LINES ∧ (ROW=1∧I=0 ∨ ROW=NFY∧I=MAXL-400) THEN
FOR J←0 STEP 1 UNTIL 117 DO SCNLIN[R3,J]←-1;
SCNLIN[R3,-1]←'100000000 LOR 118;
ARRYOUT(VRN,SCNLIN[R3,-1],119);
END;
END "ROWS";
END "BIT FILE";
RELEASE(VRN);
END "VRNLEL";